
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>4、大数字操作类 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>4、大数字操作类 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">Java中用于处理大数字的两个核心类是什么？它们主要解决了基本数据类型的哪些问题？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Java提供了 `BigInteger` 和 `BigDecimal` 两个类。它们解决了使用基本数据类型时遇到的溢出和精度丢失问题。</div>
          </div>
          <div class="card-source">来源: 文档引言部分</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">`BigInteger`类相比于Java的基本整数类型（如long）最大的优势是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">`BigInteger`的最大优势在于它不会发生溢出，可以处理比long类型更大范围的整数。</div>
          </div>
          <div class="card-source">来源: BigInteger：高精度整数运算</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">`BigDecimal`类为何在金融或科学计算领域中特别重要？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">因为它用于精确表示和操作任意精度的十进制数，能够避免浮点数运算中常见的舍入误差和精度丢失问题。</div>
          </div>
          <div class="card-source">来源: BigDecimal：高精度浮点数运算</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">在使用`BigInteger`和`BigDecimal`时，需要在性能方面注意什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">需要权衡精度和性能之间的平衡。尽管它们提供了高精度，但性能可能比基本数据类型稍差，尤其是在进行大量运算时。</div>
          </div>
          <div class="card-source">来源: 大数字操作的性能和注意事项</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">在`BigDecimal`中执行除法运算时，为什么可能会抛出`ArithmeticException`？应如何避免？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">当除法结果是无限循环小数（除不尽）或除以零时，会抛出`ArithmeticException`。可以通过使用指定舍入模式的除法方法来避免此异常。</div>
          </div>
          <div class="card-source">来源: 大数字操作的性能和注意事项</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">如何使用`BigDecimal`来控制计算结果的精度和舍入方式？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">可以使用`setScale()`方法设置精度并指定舍入模式，或者在进行除法等运算时，使用带有精度和舍入模式参数的方法，例如`divide(divisor, 2, RoundingMode.HALF_UP)`。</div>
          </div>
          <div class="card-source">来源: 优雅处理浮点数运算</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">除了基本的加减乘除，`BigDecimal`还提供了哪些高级功能以支持复杂计算？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">`BigDecimal`还提供了一系列高级数学函数，如幂函数、平方根函数、指数函数等，能够满足求解方程或计算利息等复杂需求。</div>
          </div>
          <div class="card-source">来源: 实现复杂的数学运算</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">`BigInteger`和`BigDecimal`的线程安全性是如何保证的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">这两个类都是线程安全的，因为它们是不可变（immutable）的。一旦对象被创建，其内部状态就不能被修改，因此可以在多个线程之间安全地共享和使用。</div>
          </div>
          <div class="card-source">来源: 大数字操作的线程安全性</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">应用</div>
          <div class="card-question">请列举`BigInteger`和`BigDecimal`的三个主要应用场景。</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">应用</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档中列举了多个场景，例如：1. 金融应用（计算精确金额、利率）；2. 科学计算（进行精确的数值模拟）；3. 密码学（处理高安全性的加密密钥）。</div>
          </div>
          <div class="card-source">来源: 使用场景</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
